home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #093 (1990-10)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #093 (1990-10)(Amiga User Group Deutschland e.V.).adf / Redcode / Killer4 < prev    next >
Text File  |  1990-09-11  |  6KB  |  138 lines

  1. ; Killer4
  2. ; -------
  3. ; Vergleicht jede 34. Speicherzelle mit 'dat 0' und versetzt einen
  4. ; einen Bereich um die Zelle, die ungleich 'dat 0' ist, mit 'JMP'-
  5. ; Befehlen, die auf eine Falle zeigen. 
  6. ; Schaut dann nach, ob es was gefangen hat. Falls ja, Speicher mit 3
  7. ; Schritten löschen, falls nein, ein paar Tasks starten, die 
  8. ; auch den Speicher löschen, und überlebenstask.
  9.  
  10. ; Zweite Version.
  11.  
  12.  
  13. zielbak         MOV $1017, $1017        ;für zweiten Durchlauf
  14. anzahlbak       DAT 203
  15. loop            DAT 2                   ;erster oder zweiter ?
  16.  
  17. anzahl          DAT 204                 ;Zähler für Minenleger
  18.                                         ;etwas weiter vorne beginnen,
  19.                                         ;da Feind nicht näher als 1000
  20.                                         ;Zellen sein kann.
  21. ziel            MOV $1000, $1000        ;Zeiger auf Zieladresse, MOV,
  22.                                         ;weil da beide Argumente sind,
  23.                                         ;man kann einen Takt sparen!
  24. start           ADD #34, ziel           ;Jede 20. Adresse 
  25.                 CMP #0, @ziel           ;Vergleichen
  26.                 JMP verminen            ;wenn ungleich Null, löschen
  27.                 DJN start, anzahl       ;sonst nächste Zelle
  28.                 CMP #0, zähler          ;was gefangen?
  29.                 JMP weiter              ;Speicher löschen, sonst zweiten
  30.                                         ;Durchlauf oder tasks
  31.                 MOV zielbak, ziel
  32.                 MOV anzahlbak, anzahl
  33.                 DJN start, loop         ;zweiter Durchlauf schon 
  34.                                         ;gemacht?
  35.  
  36.                 CMP #0, zähler          ;was gefangen?
  37.                 JMP weiter              ;Speicher löschen
  38.                 JMP tasks               ;Nichts gefangen, also kleines
  39.                                         ;Shitprogramm, splitten und 
  40.                                         ;hoffen.
  41.  
  42. zähler          DAT 0                   ;Anzahl Gefangene Tasks
  43. grube           JMP falle               ;Fallgrube für Feind   
  44. falle           ADD #1, zähler          ;Indikator, anzahl gefangene
  45.                 SPL 0                   ;Falls später gegnerische Tasks
  46. kill            JMP -1                  ;sterben, splitten, werden leider
  47.                                         ;nicht mehr gezählt
  48. zielkopie       DAT $0
  49. count           DAT $0
  50. verminen        MOV ziel, zielkopie     ;Kopie der Zieladresse machen
  51.                 ADD #5, ziel            ;Minen um Befehl streuen,
  52.                                         ;der ungleich 'DAT 0' ist
  53.                 MOV #10, count          ;Schlaufenzähler initialisieren
  54.                 SUB ziel, grube         ;JMP-Rücksprungwert reinkopieren
  55.                 ADD #14, grube          ;und auf den richtigen Wert
  56.                                         ;setzen, zeigt nun auf 'falle'
  57. werfen          ADD #1, grube           ;für jeden Durchlauf ändern
  58.                 MOV grube, <ziel        ;JMP-Falle werfen
  59.                 DJN werfen, count       ;Fertig? Nein, dann weiter ver-
  60.                                         ;minen
  61.                 MOV zielkopie, ziel     ;Kopie zurückspeichern
  62.                 MOV grubebak, grube     ;grube wieder auf falle richten
  63.                 SUB #1, anzahl
  64.                 JMP start
  65.  
  66. grubebak        JMP 1                   ;Zelle, die in grube gehört
  67. ort             DAT 100                 ;Wohin wird Null kopiert
  68. num             DAT 2620                ;Zähler für Löschschlaufe
  69. weiter          MOV #0, @ort            ;Speicher zu löschen beginnen
  70.                 ADD #3, ort             ;Zeiger 'ort' erhöhen
  71.                 DJN weiter, num
  72.  
  73.                 MOV #3, kill            ;Gegner töten
  74.                 SPL tasks               ;ebenfalls tasks starten 
  75.                 JMP 0                   ;zum überleben....
  76. tasks           MOV -1, 7990            ;Insgesamt 6 tasks
  77.                 SPL 7989                ;starten, so dass gnom überlebt
  78.                 MOV -3, 7981            ;wird.
  79.                 SPL 7980                ;und vielleicht auch was
  80.                 SPL nummer1             ;anderes, wer weiss
  81.                 SPL nummer2
  82.                 SPL nummer3
  83.                 SPL nummer4
  84.                 SPL nummer5
  85.                 DAT 50
  86.                 DAT 0
  87.                 DAT 0                    
  88. nummer1         MOV #0, @-3
  89.                 ADD #4, -4
  90.                 JMP nummer1
  91.                 JMP 0
  92.                 DAT 0                    
  93.                 DAT 0
  94.                 DAT 1640 
  95.                 DAT 0
  96.                 DAT 0                    
  97. nummer2         MOV #0, @-3
  98.                 ADD #4, -4
  99.                 JMP nummer2
  100.                 JMP 0
  101.                 DAT 0
  102.                 DAT 0
  103.                 DAT 3230
  104.                 DAT 0
  105.                 DAT 0
  106. nummer3         MOV #0, @-3
  107.                 ADD #4, -4
  108.                 JMP nummer3
  109.                 JMP 0
  110.                 DAT 0
  111.                 DAT 0
  112.                 DAT 4820
  113.                 DAT 0
  114.                 DAT 0
  115. nummer4         MOV #0, @-3
  116.                 ADD #4, -4
  117.                 JMP nummer4
  118.                 JMP 0
  119.                 DAT 0
  120.                 DAT 0
  121.                 DAT 6410
  122.                 DAT 0
  123.                 DAT 0
  124. nummer5         MOV #0, @-3
  125.                 ADD #4, -4
  126.                 JMP nummer5
  127.                 JMP 0
  128.                 DAT 0
  129.                 DAT 0
  130.                 DAT 0
  131.                 DAT 0
  132.                 DAT 0
  133.                 DAT 0
  134.                 DAT 0               
  135.                 DAT 0
  136.                 DAT 0
  137.                  
  138.